Many embedded systems have a direct memory access (DMA) engine, which enables movement of data between memories with limited or no processor involvement. For example, a processing entity may request that the DMA engine perform a DMA transfer, but does not actually move the data between memories (the DMA engine performs the data move operation). During the movement of data by a DMA engine, a processor entity is able to perform other tasks and thus the efficiency of the embedded system is improved. In embedded systems where a DMA engine is shared by multiple processing entities, the scenario exists where DMA transfers requested by the multiple processing entities and/or multiple algorithms being run on a single processing entity overlap (i.e., a DMA channel is requested before the previous DMA transfer on that same DMA channel is completed). Techniques for managing overlapping DMA transfer requests are needed.